在项目中可能需要获取到相关RecycleView的高度,下面有几个api可能会对你有帮助:
1、computeVerticalScrollExtent()是当前屏幕显示的区域高度
2、computeVerticalScrollOffset() 是当前屏幕之前滑过的距离
3、computeVerticalScrollRange()是整个RecycleView控件的高度
4、recyclerView.getLastVisiblePosition()获取当前可见的最后一个item的position
getLastVisiblePosition()方法可以通过下面的代码获取:
public int getLastVisiblePosition() {
RecyclerView.LayoutManager layoutManager = this.getLayoutManager();
if (layoutManager instanceof LinearLayoutManager) {
LinearLayoutManager linearManager = (LinearLayoutManager) layoutManager;
int lastItemPosition = linearManager.findLastVisibleItemPosition();
return lastItemPosition;
}
if (layoutManager instanceof GridLayoutManager) {
GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
int lastItemPosition = gridLayoutManager.findLastVisibleItemPosition();
return lastItemPosition;
}
if (layoutManager instanceof StaggeredGridLayoutManager) {
StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
int first[] = new int[staggeredGridLayoutManager.getSpanCount()];
staggeredGridLayoutManager.findLastVisibleItemPositions(first);
ArrayList<Integer> list = new ArrayList<>(first.length);
if (list == null || list.size() == 0) {
return -1;
}
return list.get(list.size() - 1);
}
return -1;
}